Clipboard API
Web上でのClipboardを扱うAPI
spec
https://developer.mozilla.org/ja/docs/Web/API/Clipboard_API
GPT-4.icon
基本的な機能
読み取り
navigator.clipboard.readText()
navigator.clipboard.read()
リッチテキストや画像などの複数形式を読み取ることができます(非テキストデータも扱える)。
書き込み
navigator.clipboard.writeText()
navigator.clipboard.write()
Clipboard APIを使えば、cmd-cなどの明示的なショートカットキーを指定しなくて良い
こんな感じで書けば、テキストを選択肢してcmd-cしたら発火する
わざわざ「cmd-c」みたいな明示的なショートカットキーを書かなくていい
code:ts
useEffect(() => {
const handleCopy = event => {
// Get the selected text
const selectedText = window.getSelection().toString();
alert(selectedText);
if (selectedText) {
// Use Clipboard API to copy the selected text
navigator.clipboard
.writeText(selectedText)
.then(() => {
console.log('Text copied to clipboard');
})
.catch(err => {
console.error('Failed to copy text: ', err);
});
}
};
document.addEventListener('copy', handleCopy);
return () => {
document.removeEventListener('copy', handleCopy);
};
}, []);